1. Field of the Invention
The present invention relates to computer programming, and deals more particularly with methods, systems, and computer program products for automatically transforming data to enable communication between parties in a computing environment (e.g. between business partners who exchange data over a public network, and who do not necessarily use the same data formats).
2. Description of the Related Art
The public Internet has grown into an e-Business platform (including business-to-business e-Commerce and e-Marketplace use) where it is common to exchange data and services electronically among parties of different network and system infrastructures. Participants in these electronic exchanges need fast and easy ways to make their programs communicate. However, many of these programs were independently developed, and might run on different operating systems and/or be written in different programming languages. Each participants' programs may be written to use data structures and application programming interfaces (“APIs”) that are specific to that participant. The programs of the parties may therefore not interoperate well together in an e-Business environment. Because of the high cost of software development, it is not feasible to redesign and rewrite the programs such that they are specifically designed for interoperability with a business partner. It is therefore necessary to use existing software to the greatest extent possible. Furthermore, in business environments where parties need to exchange data and services with multiple business partners, developing, testing, and maintaining software adapted for communicating with each business partner would be extremely expensive, time-consuming, and difficult to coordinate.
One prior art technique for enabling the programs of business partners to communicate is to encode data using Extensible Markup Language (“XML”) documents with an application-specific format which has been agreed upon between the participants using a particular application. This approach is often referred to as “XML Transformations”. While this approach provides a level of interoperability and may provide a number of advantages over prior art techniques, solutions available today are intertwined with specific application architectures and are therefore not reusable. An example is Extricity B2B™ for Enterprise from Extricity, Inc. (“Extricity B2B” is a trademark of Extricity, Inc.) Extricity B2B for Enterprise comprises software components which have been designed to automate and synchronize the flow of data, and the execution of processes, among business partners for specific industries. Another example is the vertical industry solution approach (that is, industry-specific solutions) used by Ariba. (See http://www.extricitiy.com and http://www.ariba.com for more information on the products of these companies.)
Web services technology and e-Utilities are relatively new programming approaches which enable function reuse, but they are being explored in application-specific contexts (such as providing new e-mail solutions). Web services technology is a rapidly-emerging mechanism for distributed application integration. In general, a “web service” is an interface that describes a collection of network-accessible operations, and web services are typically designed to fulfill a specific task or a set of tasks. They may work with one or more other web services in an interoperable manner to carry out their part of a complex workflow or a business transaction. For example, completing a complex purchase order transaction may require automated interaction between an order placement service (i.e. order placement software) at the ordering business and an order fulfillment service at one or more of its business partners. Many industry experts consider the service-oriented web services initiative to be the next evolutionary phase of the Internet. With web services, distributed network access to software will become widely available for program-to-program operation.
The term “e-Utilities” refers to providing utility-like software offerings, whereby a company makes software functionality for a particular function or functions available to customers to electronically access on demand, as needed by the customer's in-house computing facilities. Providing software in this manner introduces a number of challenges. A discussion of such challenges, which include possible “remodeling” of applications to fit the utility paradigm, definition of a new programming model, and application distribution considerations, is provided by the International Business Machines (“IBM”) India Research Lab on the Internet at http://www.research.ibm.com/irl/projects/eutil.
What is needed is an improved technique for allowing business partners to exchange data and business messages, without requiring software to be specially designed or rewritten for this purpose.